home *** CD-ROM | disk | FTP | other *** search
/ Resource Library: Multimedia / Resource Library: Multimedia.iso / maestro / source / unsupprt / guide / include / guide.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-15  |  9.1 KB  |  480 lines

  1. /*
  2.  * @(#)guide.h    2.25 91/10/15 Copyright 1989 Sun Microsystems.
  3.  *
  4.  * This file is a product of Sun Microsystems, Inc. and is provided for
  5.  * unrestricted use provided that this legend is included on all tape
  6.  * media and as a part of the software program in whole or part.  Users
  7.  * may copy or modify this file without charge, but are not authorized to
  8.  * license or distribute it to anyone else except as part of a product
  9.  * or program developed by the user.
  10.  * 
  11.  * THIS FILE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
  12.  * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
  13.  * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
  14.  * 
  15.  * This file is provided with no support and without any obligation on the
  16.  * part of Sun Microsystems, Inc. to assist in its use, correction,
  17.  * modification or enhancement.
  18.  * 
  19.  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
  20.  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS FILE
  21.  * OR ANY PART THEREOF.
  22.  * 
  23.  * In no event will Sun Microsystems, Inc. be liable for any lost revenue
  24.  * or profits or other special, indirect and consequential damages, even
  25.  * if Sun has been advised of the possibility of such damages.
  26.  * 
  27.  * Sun Microsystems, Inc.
  28.  * 2550 Garcia Avenue
  29.  * Mountain View, California  94043
  30.  */
  31.  
  32. #ifndef guide_guide_DEFINED
  33. #define guide_guide_DEFINED
  34.  
  35. #include    <c_varieties.h>
  36.  
  37. /*
  38.  * Miscellaneous definitions.
  39.  */
  40. #define OK    0
  41. #define    ERROR    -1
  42. #define    TRUE    1
  43. #define    FALSE    0
  44.  
  45. /*
  46.  * String appended to an application name to form the GIL file.
  47.  */
  48. #define    G_GIL_SUFFIX_STRING    ".G"
  49.  
  50. /*
  51.  * GIL version string.  The version number will be incremented when
  52.  * the format of GIL files is changed.
  53.  */
  54. #define    G_VERSION        3
  55. #define    G_VERSION_PREFIX    ";GIL-"
  56.  
  57. /*
  58.  * Public enumerated types.
  59.  */
  60.  
  61. /*
  62.  * GUIDE object types.
  63.  */
  64. typedef enum
  65. {
  66.     G_BASE_WINDOW,
  67.     G_BUTTON,
  68.     G_CANVAS_PANE,
  69.     G_CONTROL_AREA,
  70.     G_DROP_TARGET,
  71.     G_GAUGE,
  72.     G_GROUP,
  73.     G_MENU,
  74.     G_MENU_ITEMS,
  75.     G_MESSAGE,
  76.     G_POPUP_WINDOW,
  77.     G_SCROLLING_LIST,
  78.     G_SETTING,
  79.     G_SETTING_ITEMS,
  80.     G_SLIDER,
  81.     G_STACK,
  82.     G_TERM_PANE,
  83.     G_TEXT_FIELD,
  84.     G_TEXT_PANE,
  85. }               G_TYPES;
  86.  
  87.  
  88. /*
  89.  * Argument type used in the resfile.
  90.  */
  91. typedef enum
  92. {
  93.     G_VOID_TYPE,
  94.     G_INT_TYPE,
  95.     G_FLOAT_TYPE,
  96.     G_STRING_TYPE,
  97. } G_ARG_TYPES;
  98.  
  99. /*
  100.  * Function type used in the resfile
  101.  */
  102. typedef enum
  103. {
  104.     G_USER_TYPE,
  105.     G_FUNCTION_TYPE,
  106.     G_CODE_TYPE,
  107. } G_FUNC_TYPES;
  108.  
  109.  
  110. /*
  111.  * Button types.
  112.  */
  113. typedef enum
  114. {
  115.     G_NORMAL,
  116.     G_ABBREVIATED,
  117. }        G_BUTTON_TYPES;
  118.  
  119. /*
  120.  * Drawing models.
  121.  */
  122. typedef enum
  123. {
  124.     G_XVIEW,
  125.     G_XWINDOWS,
  126.     G_POSTSCRIPT,
  127. }        G_DRAWING_MODELS;
  128.  
  129. /*
  130.  * Label types.
  131.  */
  132. typedef enum
  133. {
  134.     G_STRING,
  135.     G_GLYPH,
  136. }               G_LABEL_TYPES;
  137.  
  138. /*
  139.  * Layout types for the G_LAYOUT attribute.
  140.  */
  141. typedef enum
  142. {
  143.     G_HORIZONTAL,
  144.     G_VERTICAL,
  145. }               G_LAYOUT_TYPES;
  146.  
  147. /*
  148.  * Types for the G_GROUP_TYPE attribute.
  149.  */
  150. typedef enum
  151. {
  152.     G_NONE,
  153.     G_ROW,
  154.     G_COLUMN,
  155.     G_ROWCOLUMN,
  156. }               G_GROUP_TYPES;
  157.  
  158. /*
  159.  * Types for the G_{ANCHOR,REFERENCE}_POINT attributes.
  160.  */
  161. typedef enum
  162. {
  163.     G_NORTHWEST,
  164.     G_NORTH,
  165.     G_NORTHEAST,
  166.     G_WEST,
  167.     G_CENTER,
  168.     G_EAST,
  169.     G_SOUTHWEST,
  170.     G_SOUTH,
  171.     G_SOUTHEAST,
  172. }               G_COMPASS_POINTS;
  173.  
  174. /*
  175.  * Types for the G_COL_ALIGNMENT attribute.
  176.  */
  177. typedef enum
  178. {
  179.     G_LEFT_EDGES,
  180.     G_LABELS,
  181.     G_VCENTERS,
  182.     G_RIGHT_EDGES,
  183. }               G_COL_ALIGNMENTS;
  184.  
  185. /*
  186.  * Types for the G_ROW_ALIGNMENT attribute.
  187.  */
  188. typedef enum
  189. {
  190.     G_TOP_EDGES,
  191.     G_HCENTERS,
  192.     G_BOTTOM_EDGES,
  193. }               G_ROW_ALIGNMENTS;
  194.  
  195. /*
  196.  * Menu types.
  197.  */
  198. typedef enum
  199. {
  200.     G_COMMAND_MENU,
  201.     G_EXCLUSIVE_MENU,
  202.     G_NONEXCLUSIVE_MENU,
  203. }        G_MENU_TYPES;
  204.  
  205. /*
  206.  * Setting types.
  207.  */
  208. typedef enum
  209. {
  210.     G_EXCLUSIVE,
  211.     G_NONEXCLUSIVE,
  212.     G_CHECK,
  213.     G_SETTING_STACK,
  214. }        G_SETTING_TYPES;
  215.  
  216. /*
  217.  * Event types.
  218.  */
  219. typedef enum
  220. {
  221.     G_KEYBOARD,
  222.     G_KEYBOARD_LEFT,
  223.     G_KEYBOARD_RIGHT,
  224.     G_KEYBOARD_TOP,
  225.     G_MOUSE,
  226.     G_MOUSE_DRAG,
  227.     G_MOUSE_ENTER,
  228.     G_MOUSE_EXIT,
  229.     G_MOUSE_MOVE,
  230. }        G_EVENT_TYPES;
  231.  
  232. /*
  233.  * Text types.
  234.  */
  235. typedef enum
  236. {
  237.     G_ALPHANUMERIC,
  238.     G_MULTILINE,
  239.     G_NUMERIC,
  240. }        G_TEXT_TYPES;
  241.  
  242. /*
  243.  * Intitial state types.
  244.  */
  245. typedef enum
  246. {
  247.     G_ACTIVE,
  248.     G_ICONIC,
  249.     G_INACTIVE,
  250.     G_INVISIBLE,
  251.     G_NOTSELECTED,
  252.     G_OPEN,
  253.     G_SELECTED,
  254.     G_VISIBLE,
  255. }        G_INITIAL_STATES;
  256.  
  257. /*
  258.  * GUIDE object attributes.
  259.  */
  260. typedef enum
  261. {
  262.     G_ACTIONS,
  263.     G_ANCHOR_OBJECT,
  264.     G_ANCHOR_POINT,
  265.     G_BACKGROUND_COLOR,
  266.     G_BUSY_DROP_GLYPH,
  267.     G_BUTTON_TYPE,
  268.     G_CHOICES,
  269.     G_CHOICE_DEFAULTS,
  270.     G_CHOICE_LABEL_TYPES,
  271.     G_CHOICE_COLORS,
  272.     G_COLUMNS,
  273.     G_COL_ALIGNMENT,
  274.     G_CONNECTIONS,
  275.     G_CONSTANT_WIDTH,
  276.     G_DEFAULT_DROP_SITE,
  277.     G_DND_ACCEPT_CURSOR,
  278.     G_DND_ACCEPT_CURSOR_XHOT,
  279.     G_DND_ACCEPT_CURSOR_YHOT,
  280.     G_DND_CURSOR,
  281.     G_DND_CURSOR_XHOT,
  282.     G_DND_CURSOR_YHOT,
  283.     G_DRAGGABLE,
  284.     G_DONE_HANDLER,
  285.     G_DROPPABLE,
  286.     G_DROP_TARGET_WIDTH,
  287.     G_DRAWING_MODEL,
  288.     G_EVENTS,
  289.     G_EVENT_HANDLER,
  290.     G_FOREGROUND_COLOR,
  291.     G_GROUP_TYPE,
  292.     G_HEIGHT,
  293.     G_HELP,
  294.     G_HOFFSET,
  295.     G_HSCROLL,
  296.     G_HSPACING,
  297.     G_ICON,
  298.     G_ICON_LABEL,
  299.     G_ICON_MASK,
  300.     G_INITIAL_LIST_GLYPHS,
  301.     G_INITIAL_LIST_VALUES,
  302.     G_INITIAL_SELECTIONS,
  303.     G_INITIAL_STATE,
  304.     G_INITIAL_VALUE,
  305.     G_INTERNATIONAL_DB_BEGIN,
  306.     G_INTERNATIONAL_DB_END,
  307.     G_LABEL,
  308.     G_LABEL_TYPE,
  309.     G_LABEL_BOLD,
  310.     G_LAYOUT_TYPE,
  311.     G_MAPPED,
  312.     G_MAX_TICK_STRING,
  313.     G_MAX_VALUE,
  314.     G_MAX_VALUE_STRING,
  315.     G_MEMBERS,
  316.     G_MENU_HANDLER,
  317.     G_MENU_ITEM_COLORS,
  318.     G_MENU_ITEM_DEFAULTS,
  319.     G_MENU_ITEM_HANDLERS,
  320.     G_MENU_ITEM_LABELS,
  321.     G_MENU_ITEM_LABEL_TYPES,
  322.     G_MENU_ITEM_MENUS,
  323.     G_MENU_ITEM_STATES,
  324.     G_MENU_NAME,
  325.     G_MENU_TITLE,
  326.     G_MENU_TYPE,
  327.     G_MIN_TICK_STRING,
  328.     G_MIN_VALUE,
  329.     G_MIN_VALUE_STRING,
  330.     G_MULTIPLE_SELECTIONS,
  331.     G_NAME,
  332.     G_NORMAL_DROP_GLYPH,
  333.     G_NOTIFY_HANDLER,
  334.     G_ORIENTATION,
  335.     G_OWNER,
  336.     G_PINNABLE,
  337.     G_PINNED,
  338.     G_READ_ONLY,
  339.     G_REFERENCE_POINT,
  340.     G_REPAINT_PROC,
  341.     G_RESIZABLE,
  342.     G_ROWS,
  343.     G_ROW_ALIGNMENT,
  344.     G_SCROLLABLE_HEIGHT,
  345.     G_SCROLLABLE_WIDTH,
  346.     G_SELECTION_REQUIRED,
  347.     G_SETTING_TYPE,
  348.     G_SHOW_BORDER,
  349.     G_SHOW_ENDBOXES,
  350.     G_SHOW_FOOTER,
  351.     G_SHOW_RANGE,
  352.     G_SHOW_VALUE,
  353.     G_SLIDER_WIDTH,
  354.     G_STORED_LENGTH,
  355.     G_TEXT_TYPE,
  356.     G_TICKS,
  357.     G_TITLE,
  358.     G_TYPE,
  359.     G_USER_DATA,
  360.     G_VALUE_LENGTH,
  361.     G_VALUE_UNDERLINED,
  362.     G_VALUE_X,
  363.     G_VALUE_Y,
  364.     G_VOFFSET,
  365.     G_VSCROLL,
  366.     G_VSPACING,
  367.     G_WIDTH,
  368.     G_X,
  369.     G_Y,
  370. }               G_ATTRS;
  371.  
  372.  
  373. /*
  374.  * The action attributes.
  375.  */
  376. typedef enum
  377. {
  378.     G_ACTION_FROM,
  379.     G_ACTION_WHEN,
  380.     G_ACTION_TO,
  381.     G_ACTION_FUNC_TYPE,
  382.     G_ACTION_ARG_TYPE,
  383.     G_ACTION_OPERATION,
  384. }        G_ACTION_ATTRS;
  385.  
  386.  
  387. /*
  388.  * GUIDE project attributes.
  389.  */
  390. typedef enum
  391. {
  392.     G_INTERFACES,
  393.     G_PROJ_ACTIONS,
  394.     G_ROOT_WINDOW,
  395. }        G_PROJ_ATTRS;
  396.  
  397.  
  398. /*
  399.  * GUIDE resfile attributes.
  400.  */
  401. typedef enum
  402. {
  403.     G_VALID_TYPE,
  404.     G_VALID_EVENTS,
  405.     G_VALID_ACTIONS,
  406.     G_VALID_RECEIVERS,
  407. }        G_RESFILE_ATTRS;
  408.  
  409.  
  410. /*
  411.  * A struct used to read info from the static message table.
  412.  */
  413. typedef struct G_MSG_STRUCT
  414. {
  415.     G_FUNC_TYPES    func_type;
  416.     char        *name;
  417.     G_ARG_TYPES    arg_type;
  418. }        G_MSG_STRUCT;
  419.  
  420.  
  421. /*
  422.  * Public function declarations.
  423.  */
  424. EXTERN_FUNCTION( G_ATTRS    *G_object_attrs,    (G_TYPES) );
  425. EXTERN_FUNCTION( G_ACTION_ATTRS    *G_action_attrs,    (_VOID_) );
  426. EXTERN_FUNCTION( G_PROJ_ATTRS    *G_project_attrs,    (_VOID_)  );
  427. EXTERN_FUNCTION( char        *G_attr_to_string,    (G_ATTRS) );
  428. EXTERN_FUNCTION( G_ATTRS    G_string_to_attr,    (char *) );
  429. EXTERN_FUNCTION( char        *G_action_attr_to_string, (G_ACTION_ATTRS) );
  430. EXTERN_FUNCTION( G_ACTION_ATTRS    G_string_to_action_attr,    (char *) );
  431. EXTERN_FUNCTION( char        *G_proj_attr_to_string,    (G_PROJ_ATTRS) );
  432. EXTERN_FUNCTION( G_PROJ_ATTRS    G_string_to_proj_attr,    (char *) );
  433.  
  434. EXTERN_FUNCTION( G_RESFILE_ATTRS    G_string_to_resfile_attr,(char *) );
  435. EXTERN_FUNCTION( G_ARG_TYPES    G_string_to_arg_type,    (char *) );
  436.  
  437. EXTERN_FUNCTION( char        *G_drawing_model_to_string, (G_DRAWING_MODELS) );
  438. EXTERN_FUNCTION( G_DRAWING_MODELS    G_string_to_drawing_model, (char *) );
  439.  
  440. EXTERN_FUNCTION( char        *G_event_type_to_string, (G_EVENT_TYPES) );
  441. EXTERN_FUNCTION( G_EVENT_TYPES    G_string_to_event_type, (char *) );
  442.  
  443. EXTERN_FUNCTION( char        *G_label_type_to_string, (G_LABEL_TYPES) );
  444. EXTERN_FUNCTION( G_LABEL_TYPES    G_string_to_label_type, (char *) );
  445.  
  446. EXTERN_FUNCTION( char        *G_layout_type_to_string, (G_LAYOUT_TYPES) );
  447. EXTERN_FUNCTION( G_LAYOUT_TYPES    G_string_to_layout_type, (char *) );
  448.  
  449. EXTERN_FUNCTION( char        *G_intitial_state_to_string, (G_INITIAL_STATES) );
  450. EXTERN_FUNCTION( G_INITIAL_STATES G_string_to_initial_state, (char *) );
  451.  
  452. EXTERN_FUNCTION( char        *G_group_type_to_string, (G_GROUP_TYPES) );
  453. EXTERN_FUNCTION( G_GROUP_TYPES    G_string_to_group_type, (char *) );
  454.  
  455. EXTERN_FUNCTION( char        *G_compass_point_to_string, (G_COMPASS_POINTS) );
  456. EXTERN_FUNCTION( G_COMPASS_POINTS G_string_to_compass_point, (char *) );
  457.  
  458. EXTERN_FUNCTION( char        *G_col_alignment_to_string, (G_COL_ALIGNMENTS) );
  459. EXTERN_FUNCTION( G_COL_ALIGNMENTS    G_string_to_col_alignment, (char *) );
  460.  
  461. EXTERN_FUNCTION( char        *G_row_alignment_to_string, (G_ROW_ALIGNMENTS) );
  462. EXTERN_FUNCTION( G_ROW_ALIGNMENTS    G_string_to_row_alignment, (char *) );
  463.  
  464. EXTERN_FUNCTION( char        *G_button_type_to_string, (G_BUTTON_TYPES) );
  465. EXTERN_FUNCTION( G_BUTTON_TYPES    G_string_to_button_type, (char *) );
  466.  
  467. EXTERN_FUNCTION( char        *G_menu_type_to_string, (G_MENU_TYPES) );
  468. EXTERN_FUNCTION( G_MENU_TYPES    G_string_to_menu_type, (char *) );
  469.  
  470. EXTERN_FUNCTION( char        *G_setting_type_to_string, (G_SETTING_TYPES) );
  471. EXTERN_FUNCTION( G_SETTING_TYPES    G_string_to_setting_type, (char *) );
  472.  
  473. EXTERN_FUNCTION( char        *G_text_type_to_string, (G_TEXT_TYPES) );
  474. EXTERN_FUNCTION( G_TEXT_TYPES    G_string_to_text_type, (char *) );
  475.  
  476. EXTERN_FUNCTION( char        *G_type_to_string, (G_TYPES) );
  477. EXTERN_FUNCTION( G_TYPES    G_string_to_type, (char *) );
  478.  
  479. #endif ~guide_guide_DEFINED
  480.